package af.fx.base.lesson3;

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.stage.Stage;

import java.util.Objects;

/**
 * @Description
 * @Author AF
 * @Version 1.0.0
 * @Date 2024/1/24
 */
public class Main extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        // 标题
        primaryStage.setTitle("有奇故事");

        // 图标
        primaryStage.getIcons().add(new Image("file:D:\\code\\java\\javafx_workspace\\study\\icon.png"));

        // 设置最小化
//        primaryStage.setIconified(true);

        // 设置最大化
//        primaryStage.setMaximized(true);

        // 设置宽 高
        primaryStage.setWidth(500);
        primaryStage.setHeight(500);
        // 设置不可改变窗口 ,false不可改变
        //primaryStage.setResizable(false);

        // 设置最大,最小宽高
//        primaryStage.setMaxWidth(1000);
//        primaryStage.setMaxHeight(1000);
//        primaryStage.setMinWidth(200);
//        primaryStage.setMinHeight(200);

        // 监听高度变化
//        primaryStage.heightProperty().addListener(new ChangeListener<Number>() {
//            @Override
//            public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
//                System.out.println(newValue.doubleValue());
//            }
//        });
//        // 监听宽度变化
//        primaryStage.widthProperty().addListener(new ChangeListener<Number>() {
//            @Override
//            public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
//                System.out.println(newValue.doubleValue());
//            }
//        });

        // 设置全屏,必须设置scene
//        primaryStage.setFullScreen(true);
        primaryStage.setScene(new Scene(new Group()));
        // 设置窗口透明度 取值0-1
//        primaryStage.setOpacity(0.1);
//        // 设置窗口置顶
//        primaryStage.setAlwaysOnTop(true);
        // 设置窗口启动在屏幕的位置
        primaryStage.setX(50);
        primaryStage.setY(100);

        // 监听X轴变化
        primaryStage.xProperty().addListener((observable, oldValue, newValue) -> {
            System.out.println("x轴当前位置" + newValue.doubleValue());
        });
        // 监听Y轴变化
        primaryStage.yProperty().addListener((observable, oldValue, newValue) -> {
            System.out.println("y轴当前位置" + newValue.doubleValue());
        });

        // 显示窗口
        primaryStage.show();
        // 获取宽高，需要在show后面获取
        double height = primaryStage.getHeight();
        double width = primaryStage.getWidth();
        // 关闭窗口
//         primaryStage.close();

    }
}
